package com.cola.service;

import com.alibaba.fastjson.JSON;
import com.cola.dao.UserDao;
import com.cola.entity.module.Module;
import com.cola.entity.module.ParentModule;
import com.cola.utils.MD5Util;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * Created by Max on 2017/8/17.
 */
public class UserService {
    private static volatile UserService instance = null;

    public static UserService getInstance() {
        if (instance == null) {
            synchronized (UserDao.class) {
                if (instance == null) {
                    instance = new UserService();
                }
            }
        }
        return instance;
    }
    /**
     * 检查用户
     * @return
     */
    public Map<String,Object> checkUser(String username,String password){
        password = MD5Util.MD5Encode(password,"UTF-8");
        Map<String,Object> resultMap = UserDao.getInstance().getUserInfo(username,password);
        return resultMap;
    }

    /**
     * 根据角色id获取用户的模块列表
     * @param roleId
     * @return
     */
    public List<ParentModule> getUserModuleList(Integer roleId){
        List<Module> list = UserDao.getInstance().getUserModuleList(roleId);

        ParentModule parentModule = new ParentModule();

        List<ParentModule> moduleList = new ArrayList<ParentModule>();

        List<Module> childModules = new ArrayList<Module>();

        for (Module module : list){
            if(module.getParent_module_id().equals(0)){
                parentModule = new ParentModule();

                parentModule.setParentModule(module);

                moduleList.add(parentModule);
            }
        }

        for (ParentModule pModule : moduleList){
            childModules = new ArrayList<Module>();
            for(Module module : list){
                if(module.getParent_module_id().equals(pModule.getParentModule().getModule_id())){
                    childModules.add(module);
                }
            }
            pModule.setChildModuleList(childModules);
        }
        return moduleList;
    }

    public static void main(String[] args) {
        UserService.getInstance().getUserModuleList(1);
    }

}
